草庐IT

c++ - std::byte 的用例

全部标签

我可以覆盖用 C 编写的 Ruby 方法吗?

是否可以使用Ruby代码覆盖Ruby本身的一部分方法,例如rb_error_frozen,它们是用C语言编写的?背景:我想知道当卡住的对象被修改时,是否有可能让Ruby仅记录警告,而不引发异常。这样,我可以记录各种状态修改,而不是在第一次发生时停止。我主要考虑使用YARV执行此操作,但如果这样更容易,我可以使用其他实现。是的,这是一个whyday项目!不要在生产环境中尝试这个! 最佳答案 我只能代表MRI/YARV,但我会试一试。如果C函数已明确定义为Ruby对象上的方法,则只能在Ruby中覆盖源自C的函数。例如,Kernel#ex

ruby - 我应该如何使用 EventMachine 处理这个用例?

我有一个应用程序可以对客户端发送的消息使用react。一条消息是reload_credentials,应用程序会在新客户端注册时收到该消息。然后,此消息将连接到PostgreSQL数据库,查询所有凭据,然后将它们存储在常规Ruby哈希(client_id=>client_token)中。应用程序可能收到的一些其他消息是start、stop、pause,它们用于跟踪某些session时间。我的观点是,我设想应用程序以下列方式运行:客户端发送消息消息进入队列正在处理队列但是,例如,我不想阻塞react器。此外,假设我在队列中有一条reload_credentials消息。在从数据库重新加载

ruby 1.9.2 : irb throws ArgumentError: invalid byte sequence in UTF-8 when entering German Umlaut

我想在我的irb中输入德语变音符号,但出现奇怪的错误。我可以毫无问题地输入äöü的任何字符,但是每个ÄÖÜß都会导致以下错误:$irbruby-1.9.2-p136:001>?#hereIenteredÜbutitdisplaysonly?/Users/lorenz/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/ruby-lex.rb:728:in`blockinlex_int2':invalidbytesequenceinUTF-8(ArgumentError)我已经查看了很多关于Ruby、rvm和UTF-8的SO问题,但都没有帮助。大

c - 命令行错误消息的 "POSIX-defined format"是什么?哪个标准?

在ruby​​-doc.org上page我发现了以下关于命令行选项/参数解析(getopt库)的内容:ReturntheappropriateerrormessageinPOSIX-definedformat.Ifnoerrorhasoccurred,returnsnil.命令行错误消息的POSIX定义格式是什么?它是哪个POSIX标准?编辑:我必须澄清一下,我对标准/推荐的错误消息很感兴趣解析命令行参数/选项。在下面的链接(答案)中,我发现只提到了getopt的这种错误格式:"%s:illegaloption--%c\n",,"%s:optionrequiresanargument-

c - 在不使用其他功能的情况下释放 C 扩展中的全局 VM 锁

我不明白为什么在发布或获取RubyCAPI中的GVL时需要另一个间接级别。rb_thread_call_without_gvl()和rb_thread_call_with_gvl()都需要一个只接受一个参数的函数,但情况并非总是如此。我不想仅仅为了发布GVL而将我的参数包装在一个结构中。它使代码的可读性变得复杂,并且需要从void指针转换到void指针。在查看Ruby的线程代码后,我找到了GVL_UNLOCK_BEGIN。/GVL_UNLOCK_END与Python的Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS匹配的宏但我找不到关于它们以及何时

c - Ruby 解释器的嵌入 API 的文档在哪里?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我正在寻找有关将Ruby解释器嵌入到C或C++程序以及用于该目的的API的全面的在线文档资源。Pickaxe书中关于此的部分非常好,但我的版本指的是Ruby1.8,我对当前的ruby​​版本范围很感兴趣,即1.8.x、1.9.x和2.0,并且有很多跨该版本范围的嵌入处理之间的差异。作为引用,有问题的Ruby解释器是来自http://www.ruby-lang.org/

c - Ruby C 扩展开发人员的命名约定

在用C为ruby​​编写扩展时,我对遵循正确的命名约定很感兴趣。具体来说,我指的是将_p添加到谓词的函数名称以及为变量添加前缀m代表模块,c代表类等等。例如,如果我们想在C语言中定义一个像下面这样的谓词方法,我们应该在定义该方法的函数中使用_p作为后缀。classMyClassdefawesome?trueendend在C中:staticVALUEmy_extension_my_class_awesome_p(VALUEself){returnQtrue;}voidInit_my_extension(void){VALUEcMyClass=rb_define_class("MyClas

ruby - String#encode 未修复 "invalid byte sequence in UTF-8"错误

我知道有很多关于此错误的类似问题,而且我已经尝试了很多,但都没有成功。我遇到的问题涉及字节\xA1并且正在抛出ArgumentError:invalidbytesequenceinUTF-8我尝试了以下但没有成功:"\xA1".encode('UTF-8',:undef=>:replace,:invalid=>:replace,:replace=>"").sub('','')"\xA1".encode('UTF-8',:undef=>:replace,:invalid=>:replace,:replace=>"").force_encoding('UTF-8').sub('','')"

软件测试入门第一步【测试用例】

测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。每个具体测试用例都将包括下列详细信息:编制人、审定人、编制日期、版本、用例类型、设计说明书编号、用例编号、用例名称、输入说明、期望结果(含判断标准)、环境要求、备注等。测试用例设计将软件测试的行为活动,作为一个科学化的组织归纳。挑选具有代表性或者特殊性的测试数据来进行测试。软件程序在测试用例限定的条件下,必须能够正常运行并且达到程序所设计的执行结果。测试用例的好处在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。测

c - 奇怪的 "half to even"不同语言的舍入

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。GNUbash,版本4.2.24:$>printf"%.0f,%.0f\n"48.549.548,50ruby1.8.7>printf("%.0f,%.0f\n",48.5,49.5)48,50Perl5.12.4$>perl-e'printf("%.0f,%.0f\n",48.5,49.5)'48,50海湾合作委员会4.5.3:>printf("%.0